package com.ruoyi.energy.service;

import org.springframework.messaging.Message;

/**
 * MQTT消息处理服务接口
 * 
 * @author ruoyi
 * @date 2025-06-29
 */
public interface IMqttMessageService {

    /**
     * 处理接收到的MQTT消息
     * 
     * @param message MQTT消息
     */
    void handleMessage(Message<?> message);

    /**
     * 发送MQTT消息
     * 
     * @param topic 主题
     * @param payload 消息内容
     */
    void sendMessage(String topic, String payload);

    /**
     * 发送MQTT消息
     * 
     * @param topic 主题
     * @param payload 消息内容
     * @param qos 服务质量
     * @param retained 是否保留消息
     */
    void sendMessage(String topic, String payload, int qos, boolean retained);

    /**
     * 订阅新主题
     * 
     * @param topic 主题
     * @param qos 服务质量
     */
    void subscribe(String topic, int qos);

    /**
     * 取消订阅主题
     * 
     * @param topic 主题
     */
    void unsubscribe(String topic);
}
